home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1996 February
/
EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso
/
earcd
/
util3
/
cmpctplr.lha
/
CompactPlayer
/
CompactPlayer.doc
< prev
next >
Wrap
Text File
|
1995-12-28
|
10KB
|
229 lines
NAME
CompactPlayer
DESCRIPTION
CompactPlayer is a CD Audio player for SCSI CD-ROMs, similar to MCDP,
YACDP, CDPD, or CDP.
CompactPlayer uses the ClassAct GUI toolkit and is compatible with
MCDP's CD index files. In fact, MCDP had a heavy influence on
CompactPlayer, in particular the SCSI routines.
COPYRIGHT AND DISCLAIMER
CompactPlayer is Copyright © 1995 Osma Ahvenlampi
ClassAct is Copyright © 1995 Phantom Development
COMPACTPLAYER IS PROVIDED "AS IS". BY USING COMPACTPLAYER, YOU ACCEPT
THE RESPONSIBILITY FOR ANY DAMAGE OR LOSS THAT MAY OCCUR DURING OR
BECAUSE OF ITS USE, DIRECTLY OR INDIRECTLY. THE FITNESS OF
COMPACTPLAYER FOR ANY USE OR PURPOSE IS NOT GUARANTEED. THE AUTHOR IS
NOT, AND CAN NOT BE HELD LIABLE FOR ANYTHING.
CompactPlayer is GIFTWARE. If you like CompactPlayer, please send a
small gift (a chocolate bar, your own program, $5, or even just a
postcard) to me. My address is in the end of this document. By doing
this you encourage further development of quality Amiga programs.
COMPATIBILITY
CompactPlayer has been developed and tested on an Amiga 3000 and
Toshiba XM3601B, using AmigaOS 3.1. The SCSI chip used was the
-4PROTO model. Compatibility with other CD-ROM devices is unknown.
Due to notorious incompatibility between various so-called "standard"
SCSI-2 devices, especially CD-ROMs, it is very likely that this
program will have problems with some installations. It may even lock
up the whole SCSI bus, forcing you to reboot. You have been warned.
However, I hope this works for you, because it IS a rather neat
little program ;)
USAGE
CompactPlayer understands the following tooltypes or command line
arguments:
DEVICE The SCSI device driver to use. Default: scsi.device
UNIT The SCSI ID of the CD-ROM. Default: 6
PUBSCREEN The screen to open the interface on.
INDEXPATH The directory where the CD descriptor files reside.
XPOS,YPOS The initial coordinates of the interface.
TINYFONT The small proportional font used.
PANELFONT The nonproportional font used for the status panel.
Other than that, insert a CD, press the "play" button. ;)
The status panel gadget displays the following information:
First line: ("xx xx:xx xx:xx xx:xx xx:xx")
- The number of tracks on the CD, or the current track when playing.
- Current playing of this track.
- Remaining time on this track.
- Current playing time from the beginning of the CD.
- Total lenght of the CD.
Second line: The artist name of the CD.
Third line: The CD title or the name of the current track.
Fourth line: a graph displaying the relative lenghts of the tracks
on the CD, with a plotted line above it displaying the parts that
have been played.
In the lower right corner is a small icon displaying the current
status of the player. Possible icons are "play", "stop", "paused",
empty, and a question mark signifying that CompactPlayer thinks the
CD tray is ejected. See the note below about the latter.
Below the status panel is a simple row of normal tape deck controls.
The "rewind" and "fast forward" buttons have two modes. When not
playing, they will select the track where playing should begin, when
playing they function as seek buttons, seeking on the CD at 10 times
normal speed.
On the right is a listview of the CD tracks. Selecting a title will
make CompactPlayer seek to that track and start playing.
Above the listview are buttons for bringing up the title and program
editor windows. Unfortunately the program editor is as of now still
unimplemented, but the title editor exists.
In the title editor you will see two string gadgets for the artist
and CD names, and below them a listview of the tracks on the CD and a
string gadget for editing the track titles. Select a track and type
in the name. After filling all the information about the CD, press
the Save Titles button to save the titles in a file in the directory
set with the INDEXPATH tooltype. CompactPlayer will now recognise the
CD when inserted and display the names of the tracks instead of just
numbers.
In the menus is available a third window for selecting the device
used by CompactPlayer to access the CD-ROM. In this window, choose
the SCSI device to which the CD-ROM is connected, wait a while for
CompactPlayer to scan the SCSI bus, and then choose the CD-ROM from
the device list on the right. After this, click on "Use this".
CompactPlayer is also keyboard controllable. The keys are:
Space -- Play/Pause, load tray if ejected.
Enter -- Stop/Eject
T -- Open title editor
Cursor Up -- Select previous track
Cursor Down -- Select next track
Cursor Left -- Seek backwards
Cursor Right -- Seek forwards
CompactPlayer interface can be zoomed to only the panel gadget, or
iconified completely using the title bar gadgets.
AREXX PORT
CompactPlayer also has an ARexx interface. The commands understood
are:
PLAY TRACK/N Play (selected track)
STOP Stop playing
PAUSE Pause playing
RESUME Resume playing after a pause
EJECT Eject tray
LOAD Load tray
QUIT Exit CompactPlayer
ACTIVATE Uniconify CompactPlayer, bring it to front.
DEACTIVATE Iconify CompactPlayer.
NOTE ABOUT CD TRAY EJECTION
CompactPlayer supports retracting the CD tray when it has been
ejected. However, to my best knowledge it is not possible to query
a CD-ROM drive whether the tray is out or not via standard SCSI-2
commands. Because of this CompactPlayer keeps track of this
internally, which will not work 100% if you use the manual controls
on the CD-ROM drive. This means that CompactPlayer could think that
the tray is out when it is not, and vice versa. For SCSI-2, there
seems to be no difference between ejected CD tray and empty CD-ROM
drive. If someone knows more about this, I'd like to hear about it.
AUTHOR
Osma Ahvenlampi <Osma.Ahvenlampi@hut.fi>
Osma Ahvenlampi
Rekipellontie 2 F 55
00940 Helsinki
Finland
A BLATANT PLUG
Don't forget to check out Voodoo, the definitive Amiga email program.
A demo version of Voodoo is now available on the World Wide Web at
http://www.niksula.cs.hut.fi/~oahvenla/voodoo/, and by FTP at
ftp://ftp.warped.com/pub/amiga/voodoo/.
ANOTHER ADVERTISEMENT
If you're a developer, consider using the ClassAct toolkit for your
programs! ClassAct makes GUI development a breeze. More information
is available at http://www.pcnet.com/~caldi or by sending email to
caldi@pcnet.com.
The source code to CompactPlayer has been included to assist
evaluating ClassAct. It will not compile without the ClassAct
developer kit. It is not documented too much, but should be pretty
easy to read anyhow.
HISTORY
1.7 Number keys select track.
Utilised the V41 layout.gagdet NoDispose attribute for
better main window zoom.
Um, what the hell? V40 graphics.library/WritePixelLine8()
erases the source array while writing it to the rastport?
Nice feature. Double-caching the source to avoid that
crap.
Fixed a bug in the status panel gadget that made it die
on native displays. I only tested it on CyberGraphX...
1.6 Added a partial cd.device interface. It's very buggy
though, I wasn't able to abort a play command with it,
although I tried to follow the autodoc instructions.
Thus, I didn't finish it.
Localised the interface.
Made the main window zoomable.
Converted the title list editor to use in-place listview
edit.
Added an ARexx port.
Wasn't setting rastport draw mode in the status panel
gadget, so some renders didn't work.
Editing disc title doesn't reset status panel when disc
is playing.
Reset artist and disc titles for new discs.
1.5 Added a device/unit selection window, iconification, and a
simple menu.
1.4 Added SCSI device type checking, fixed another memory free
problem.
1.3 Converted to use the ClassAct WindowClass.
1.2 Was freeing some memory twice, how nasty of me.
1.1 Eject uses SCSI direct, because TD_EJECT was dangerous with
some controllers.
Implemented a kludge that retries a play operation until it
succeeds. At least the Toshiba XM3601B I have has a tendency
to abort PLAY_AUDIO silently just after a media change.